<?php

namespace app\service;

use app\popo\vo\OrderReportVO;
use app\popo\vo\SalesTop10ReportVO;
use app\popo\vo\TurnoverReportVO;
use app\popo\vo\UserReportVO;

/**
 * 数据统计服务接口
 */
interface ReportService
{
    /**
     * 统计指定时间区间内的营业额数据
     * @param string $begin 开始日期
     * @param string $end 结束日期
     * @return TurnoverReportVO
     */
    public function getTurnoverStatistics(string $begin, string $end): TurnoverReportVO;

    /**
     * 统计指定时间区间内的用户数据
     * @param string $begin 开始日期
     * @param string $end 结束日期
     * @return UserReportVO
     */
    public function getUserStatistics(string $begin, string $end): UserReportVO;

    /**
     * 统计指定时间区间内的订单数据
     * @param string $begin 开始日期
     * @param string $end 结束日期
     * @return OrderReportVO
     */
    public function getOrderStatistics(string $begin, string $end): OrderReportVO;

    /**
     * 统计指定时间区间内的销量排名前10
     * @param string $begin 开始日期
     * @param string $end 结束日期
     * @return SalesTop10ReportVO
     */
    public function getSalesTop10(string $begin, string $end): SalesTop10ReportVO;

    /**
     * 导出运营数据报表
     * @return array 运营数据
     */
    public function exportBusinessData(): array;
}